import dayjs from 'dayjs'

function dayFormat([start, end]: [dayjs.Dayjs, dayjs.Dayjs]) {
  return [start.startOf('day').toDate(), end.startOf('day').toDate()]
}

// 日期范围：不限、前7天、前30天、上个月、本月、本日
export const DEFAULT_RANGE_SHORTCUTS = [
  {
    label: '不限时间',
    value: () => dayFormat([dayjs(0), dayjs()]),
  },
  {
    label: '前30天',
    value: () => dayFormat([dayjs(), dayjs().subtract(1, 'month')]),
  },
  {
    label: '前7天',
    value: () => dayFormat([dayjs(), dayjs().subtract(1, 'week')]),
  },
  {
    label: '上月',
    value: () => {
      const prevMonth = dayjs().subtract(1, 'month')
      return dayFormat([prevMonth.startOf('month'), prevMonth.endOf('month')])
    },
  },
  {
    label: '本月',
    value: () => dayFormat([dayjs().startOf('month'), dayjs()]),
  },
  {
    label: '本日',
    value: () => dayFormat([dayjs().startOf('day'), dayjs().endOf('day')]),
  },
]

// 日期选择器默认参数
export const DATE_PICKER_DEFAULT = {
  timePickerProps: { defaultValue: ['00:00:00', '23:59:59'] },
  shortcuts: DEFAULT_RANGE_SHORTCUTS,
  format: 'YYYY-MM-DD HH:mm',
}
